package com.solution.model;

import static javax.persistence.GenerationType.SEQUENCE;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Transient;

/**
 * UserInfo
 */
@Entity
@Table(name="User_Info"
    ,schema="public"
)
public class UserInfo extends AbstractPO
 {

	
	private static final long serialVersionUID = 1L;
	
    private Long id;
    private String username;
    private String password;
    private Byte retryPasswordCount;
    private String firstName;
    private String middleName;
    private String lastName;
    private Boolean isDefault;
    private Short status;
    private String statusReason;
    private Date lastLoggedOn;
    private Date lastLoggedOut;
    private Date lastChangedPassword;
    private String iPAddress;
    private String sessionId;
    private Date dateOfJoining;
    private Date dateOfRelieving;
    private Date dateOfBirth;
    private String maritalStatus;
    private String gender;
    private String empCode;
    private Long examScore;
    private Long examTypeId;
    private String createdBy;
    private Date createdOn;
    private String modifiedBy;
    private Date modifiedOn;
    private String rfu1;
    private String rfu2;
    private String rfu3;
   
    private Long roleId;
	private boolean isUserExist = false;
	
	@SequenceGenerator(name="generator", sequenceName="user_info_seq")@Id @GeneratedValue(strategy=SEQUENCE, generator="generator")
    
    @Column(name="User_InfoID", unique=true, nullable=false, precision=10, scale=0)
    public Long getId() {
        return this.id;
    }
    
    public void setId(Long id) {
        this.id = id;
    }
    
    @Column(name="Username", nullable=false, length=50)
    public String getUsername() {
        return this.username;
    }
    
    public void setUsername(String username) {
        this.username = username;
    }
    
    @Column(name="Password", nullable=false, length=50)
    public String getPassword() {
        return this.password;
    }
    
    public void setPassword(String password) {
        this.password = password;
    }
    
    @Column(name="Retry_Password_Count", nullable=false)
    public Byte getRetryPasswordCount() {
        return this.retryPasswordCount;
    }
    
    public void setRetryPasswordCount(Byte retryPasswordCount) {
        this.retryPasswordCount = retryPasswordCount;
    }
    
    @Column(name="First_Name", nullable=false, length=50)
    public String getFirstName() {
        return this.firstName;
    }
    
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }
    
    @Column(name="Middle_Name", length=50)
    public String getMiddleName() {
        return this.middleName;
    }
    
    public void setMiddleName(String middleName) {
        this.middleName = middleName;
    }
    
    @Column(name="Last_Name", nullable=false, length=50)
    public String getLastName() {
        return this.lastName;
    }
    
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
    
    @Column(name="Is_Default", nullable=false)
    public Boolean getIsDefault() {
        return this.isDefault;
    }
    
    public void setIsDefault(Boolean isDefault) {
        this.isDefault = isDefault;
    }
    
    @Column(name="Status", nullable=false, precision=4, scale=0)
    public Short getStatus() {
        return this.status;
    }
    
    public void setStatus(Short status) {
        this.status = status;
    }
    
    @Column(name="Status_Reason", length=2000)
    public String getStatusReason() {
        return this.statusReason;
    }
    
    public void setStatusReason(String statusReason) {
        this.statusReason = statusReason;
    }
    
    @Column(name="Last_Logged_On", length=23)
    public Date getLastLoggedOn() {
        return this.lastLoggedOn;
    }
    
    public void setLastLoggedOn(Date lastLoggedOn) {
        this.lastLoggedOn = lastLoggedOn;
    }
    
    @Column(name="Last_Logged_Out", length=23)
    public Date getLastLoggedOut() {
        return this.lastLoggedOut;
    }
    
    public void setLastLoggedOut(Date lastLoggedOut) {
        this.lastLoggedOut = lastLoggedOut;
    }
    
    @Column(name="Last_Changed_Password", length=23)
    public Date getLastChangedPassword() {
        return this.lastChangedPassword;
    }
    
    public void setLastChangedPassword(Date lastChangedPassword) {
        this.lastChangedPassword = lastChangedPassword;
    }
    
    @Column(name="IP_Address", length=20)
    public String getiPAddress() {
        return this.iPAddress;
    }
    
    public void setiPAddress(String iPAddress) {
        this.iPAddress = iPAddress;
    }
    
    @Column(name="SessionID", length=50)
    public String getSessionId() {
        return this.sessionId;
    }
    
    public void setSessionId(String sessionId) {
        this.sessionId = sessionId;
    }
    
    @Column(name="Date_Of_Joining", length=23)
    public Date getDateOfJoining() {
        return this.dateOfJoining;
    }
    
    public void setDateOfJoining(Date dateOfJoining) {
        this.dateOfJoining = dateOfJoining;
    }
    
    @Column(name="Date_Of_Relieving", length=23)
    public Date getDateOfRelieving() {
        return this.dateOfRelieving;
    }
    
    public void setDateOfRelieving(Date dateOfRelieving) {
        this.dateOfRelieving = dateOfRelieving;
    }
    
    @Column(name="Date_Of_Birth", length=23)
    public Date getDateOfBirth() {
        return this.dateOfBirth;
    }
    
    public void setDateOfBirth(Date dateOfBirth) {
        this.dateOfBirth = dateOfBirth;
    }
    
    @Column(name="Marital_Status", length=20)
    public String getMaritalStatus() {
        return this.maritalStatus;
    }
    
    public void setMaritalStatus(String maritalStatus) {
        this.maritalStatus = maritalStatus;
    }
    
    @Column(name="Gender", length=20)
    public String getGender() {
        return this.gender;
    }
    
    public void setGender(String gender) {
        this.gender = gender;
    }
    
    @Column(name="EmpCode", length=20)
    public String getEmpCode() {
        return this.empCode;
    }
    
    public void setEmpCode(String empCode) {
        this.empCode = empCode;
    }
    
    @Column(name="Exam_Score", precision=10, scale=0)
    public Long getExamScore() {
        return this.examScore;
    }
    
    public void setExamScore(Long examScore) {
        this.examScore = examScore;
    }
    
    @Column(name="Exam_TypeID", precision=10, scale=0)
    public Long getExamTypeId() {
        return this.examTypeId;
    }
    
    public void setExamTypeId(Long examTypeId) {
        this.examTypeId = examTypeId;
    }
    
    @Column(name="CreatedBy", nullable=false, length=50)
    public String getCreatedBy() {
        return this.createdBy;
    }
    
    public void setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
    }
    
    @Column(name="CreatedOn", nullable=false, length=23)
    public Date getCreatedOn() {
        return this.createdOn;
    }
    
    public void setCreatedOn(Date createdOn) {
        this.createdOn = createdOn;
    }
    
    @Column(name="ModifiedBy", length=50)
    public String getModifiedBy() {
        return this.modifiedBy;
    }
    
    public void setModifiedBy(String modifiedBy) {
        this.modifiedBy = modifiedBy;
    }
    
    @Column(name="ModifiedOn", length=23)
    public Date getModifiedOn() {
        return this.modifiedOn;
    }
    
    public void setModifiedOn(Date modifiedOn) {
        this.modifiedOn = modifiedOn;
    }
    
    @Column(name="RFU1", length=100)
    public String getRfu1() {
        return this.rfu1;
    }
    
    public void setRfu1(String rfu1) {
        this.rfu1 = rfu1;
    }
    
    @Column(name="RFU2", length=100)
    public String getRfu2() {
        return this.rfu2;
    }
    
    public void setRfu2(String rfu2) {
        this.rfu2 = rfu2;
    }
    
    @Column(name="RFU3", length=100)
    public String getRfu3() {
        return this.rfu3;
    }
    
    public void setRfu3(String rfu3) {
        this.rfu3 = rfu3;
    }

    @Transient
	public Long getRoleId() {
		return roleId;
    }

	public void setRoleId(Long roleId) {
		this.roleId = roleId;
	}

	@Transient
	public boolean isUserExist() {
		return isUserExist;
	}

	public void setUserExist(boolean isUserExist) {
		this.isUserExist = isUserExist;
	}


}


